文件系统与权限详解
理解文件系统与权限控制是操作系统安全与资源管理的基础,尤其在 Linux/Windows 系统开发与运维中至关重要。
📂 文件系统简介
系统 | 文件系统 | 特点 |
---|---|---|
Linux | ext4 , xfs , btrfs | 支持权限、符号链接、日志 |
Windows | NTFS , FAT32 | NTFS 支持详细权限控制 |
macOS | APFS | 优化 SSD 读写速度 |
🛡️ 权限控制概念
权限类型:
权限 | 描述 |
---|---|
r | 读(读取文件或列出目录) |
w | 写(修改文件或创建子文件) |
x | 执行(运行脚本或进入目录) |
用户角色(Linux):
角色 | 描述 |
---|---|
所有者(owner) | 创建该文件的用户 |
所属组(group) | 同组用户权限 |
其他人(others) | 所有其他用户 |
🧑💻 Linux 权限管理
✅ 查看权限
ls -l
输出示例:
-rwxr-xr-- 1 user group 1234 Apr 13 script.sh
✅ 修改权限(chmod)
chmod 755 run.sh # rwxr-xr-x
chmod +x deploy.sh # 添加执行权限
chmod -w readonly.txt # 移除写权限
✅ 修改所属者(chown)
chown root:root file.txt # 改 owner 和 group
chown user file.txt # 改 owner
🪟 Windows 权限控制(NTFS)
✅ 使用 icacls
命令
icacls "file.txt"
icacls "file.txt" /grant username:F # 完全控制
icacls "file.txt" /remove username # 移除权限
icacls "file.txt" /inheritance:r # 关闭权限继承
📦 使用场景与推荐权限
场景 | 权限设置 |
---|---|
Shell 脚本运行 | chmod +x deploy.sh |
配置文件 .env | chmod 600 .env 仅限当前用户 |
公共静态目录 | chmod 755 /var/www |
日志文件 | chmod 644 /var/log/app.log |
🔧 权限数字简表
r = 4, w = 2, x = 1
rwx = 7, rw- = 6, r-- = 4
权限 | 含义 |
---|---|
755 | 所有者全部权限,组与其他可读可执行 |
644 | 所有者可读写,其他人只读 |
700 | 仅自己访问和执行 |
🛠️ 常见问题与解决方案
Permission denied
原因:缺少执行/访问权限。
解决:使用 chmod +x filename
添加权限。
脚本无法运行
可能原因:
- 没有执行权限
- 缺少 shebang(如
#!/bin/bash
)
Windows 无法访问文件夹
请右键 → 属性 → 安全 → 添加用户并授予权限,或使用 icacls
命令设置。